package com.stargate.soft.scenario;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;

import com.stargate.bd.ConnectionBD;
import com.stargate.bd.bean.Badge;
import com.stargate.bd.dao.DAO;
import com.stargate.bd.dao.DAOFactory;
import com.stargate.bd.dao.factory.AffectationDAO;
import com.stargate.bd.dao.factory.PersonneDAO;

public class SuppressionPersonne {

	private ArrayList<Badge> badges;

	public SuppressionPersonne(int idPersonne) throws SQLException {
		// transaction Serializable
		ConnectionBD.setSerializable();

		// récupération des badges de la personne
		AffectationDAO affectationDAO = new AffectationDAO();
		badges = affectationDAO.selectBadgesPersonne(idPersonne);

		// désactivation des badges
		DAO<Badge> badgeDAO = DAOFactory.getBadgeDAO();
		for (Iterator<Badge> it = badges.iterator(); it.hasNext();) {
			Badge badge = (Badge) it.next();
			badge.disable();
			badgeDAO.update(badge);
		}

		// suppression de la personne et des affectations par cascade
		PersonneDAO personneDAO = new PersonneDAO();
		personneDAO.delete(idPersonne);

		// commit
		ConnectionBD.commit();
	}

	public ArrayList<Badge> getBadges() {
		return badges;
	}

}
